package com.googlecode.imanager.client.bridge;

import com.googlecode.imanager.client.Container;
import com.googlecode.imanager.client.action.Action;
import com.googlecode.imanager.client.bridge.style.IChildThemeHandler;
import com.googlecode.imanager.client.bridge.style.IStyle;
import com.googlecode.imanager.client.style.Style;
import com.googlecode.imanager.client.util.ControlState;

/**
 * NOTE: Any bridge implementors of this interface must also 
 *       implements {@link IChildThemeHandler}.
 * 
 * @author wellsantos@wellsantos.com
 * @since 0.01
 */
public interface IControl extends IComponent {

    public void setBounds(int left, int top, int width, int height);

    public void setAction(Action action);

    public void setHint(String hint);

    public void setStyle(Style style);

    public void setVisible(Boolean visible);

    public void setDisabled(Boolean disabled);
    
    public void setParent(Container parent);

    public void click();
    
    public void realign();
    
    public void refresh();
    
    public void scrollToRectVisible(int left, int top, int width, int height);

    public void onStateChanged(ControlState state);
    
    IStyle getComputedStyle();
    
}